﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;

namespace UI.Desktop
{
    public partial class frmLogin : Form
    {
        private int NIntento;
        private bool incorrecto = false;
        private int Intentos = 3;

        public frmLogin()
        {
            InitializeComponent();
            NIntento = 0;
            txtUsuario.Text = "34542863";
            txtPassword.Text = "34542863";
        }

        private void btnIngresar_Click(object sender, EventArgs e)
        {
            //bool contraseñaCorrecta = false;
            errorProvider1.SetError(lblError, "");
            lblError.Visible = false;
            
            

            if (true && !incorrecto && txtPassword.Text != "" && txtUsuario.Text != "")
            {

                Business.Entities.Personal comprobar = new Business.Entities.Personal();
                DataSet dspers = new DataSet();
                string cadena = " dni = '" + txtUsuario.Text + "'";
                dspers = comprobar.ObtenerListaPersonal(cadena);
                
                if (dspers.Tables["Personal"].Rows.Count == 1 && dspers.Tables["Personal"].Rows[0][9].ToString() == "1")
                {
                    if (dspers.Tables["Personal"].Rows[0][10].ToString() == txtPassword.Text)
                    {
                        this.Hide();
                        frmLogin flg = new frmLogin();
                        flg.Enabled = false;
                        frmPrincipal F2 = new frmPrincipal(dspers);
                        F2.WindowState = FormWindowState.Maximized;
                        F2.ShowDialog();
                        Application.Exit();
                        txtUsuario.Text = "";
                        txtPassword.Text = "";
                        NIntento = 0;
                        this.Show();
                    }
                    else
                    {
                        NIntento++;
                        errorProvider1.SetError(lblError, "ERROR USUARIO O CONTRASEÑA NO VALIDOS");
                        lblError.Visible = true;
                        if (NIntento >= Intentos)
                        {
                            MessageBox.Show("Numero de intentos superado", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                            Application.Exit();
                        }
                    }

                }
                else
                {
                    if (dspers.Tables["Personal"].Rows.Count == 1 && dspers.Tables["Personal"].Rows[0][9].ToString() == "2")

                    {
                        if (dspers.Tables["Personal"].Rows[0][10].ToString() == txtPassword.Text)
                                                    this.Hide();
                            
                            
                            frmPrincipal F2 = new frmPrincipal(dspers);
                            
                            F2.WindowState = FormWindowState.Maximized;
                            F2.ShowDialog();
                            Application.Exit();
                            txtUsuario.Text = "";
                            txtPassword.Text = "";
                            NIntento = 0;
                            
                            this.Show();
                        }
                        else
                        {
                            NIntento++;
                            errorProvider1.SetError(lblError, "ERROR USUARIO O CONTRASEÑA NO VALIDOS");
                            lblError.Visible = true;
                            
                     if (NIntento >= Intentos)
                            {
                                MessageBox.Show("Numero de intentos superado", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                                Application.Exit();
                            }
                    }
                
                    
                   ;
                    {
                        MessageBox.Show("No tienes suficientes privilegios");
                        Application.Exit();
                    }
                }
            }
            else
            {
                NIntento++;
                errorProvider1.SetError(lblError, "ERROR USUARIO O CONTRASEÑA NO VALIDOS");
                lblError.Visible = true;
                if (NIntento >= Intentos)
                {
                    MessageBox.Show("Numero de intentos superado", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                    Application.Exit();
                }
            }

        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void txtUsuario_Leave(object sender, EventArgs e)
        {
            if (!Regex.Match(txtUsuario.Text, @"^((\d{8})|(\d{8}))$").Success)
            {
                errorProvider1.SetError(txtUsuario, "Formato correcto: 00000000");
                incorrecto = true;
            }
            else
            {
                incorrecto = false;
                errorProvider1.SetError(txtUsuario, "");
            }
        }

        private void frmLogin_Load(object sender, EventArgs e)
        {

        }

        private void lblError_Click(object sender, EventArgs e)
        {

        }

        private void txtUsuario_TextChanged(object sender, EventArgs e)
        {

        }
    }
}


        
       
